-- white-or-webhook-multi.lua
-- 说明：
--  1) 支持多个白名单 IP，白名单请求全部放行
--  2) 其他 IP 只允许访问 /api/webhook:trigger/（不区分大小写），否则阻断

local uri = waf.toLower(waf.uri or "")
local allowed_path = "/api/webhook:trigger/"

-- 白名单 IP 表
local whitelist_ips = {
    "111.30.79.162"
}

-- 判断当前请求 IP 是否在白名单中
local function is_whitelist(ip)
    for _, wip in ipairs(whitelist_ips) do
        if ip == wip then
            return true
        end
    end
    return false
end

-- 非白名单 IP，只允许访问 webhook 路径
if uri == allowed_path then
    return true, "allow-path:" .. allowed_path, false
end

-- 白名单 IP 直接放行
if not is_whitelist(waf.ip) then
    return true, "isNotWhitelist:" .. waf.ip, true
end


return false

